﻿// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: https://pvs-studio.com


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace lr1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        } 
        
        float a;
        float b;//значения, набранные пользователем в калькуляторе
        int count; //операции с переменными
        bool z, p = false; 
        string m;

        
        

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "КАЛЬКУЛЯТОР";
        }
                       

        private void button7_Click(object sender, EventArgs e)
        {
            textBox1.Text += "0";
        }
        
        private void button13_Click(object sender, EventArgs e)
        {                      
            textBox1.Text = "";
            label1.Text = "";
            p = false;
            
        }


        private void button15_Click(object sender, EventArgs e)
        {            
            if (textBox1.Text.StartsWith("-"))
            {                
                textBox1.Text = textBox1.Text.Substring(1);
            }
            else
            {                
                textBox1.Text = "-" + textBox1.Text;
            }
        }


        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                textBox1.Text = textBox1.Text + 1;
            }
            

        }
        

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text += "2";
        }
        

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text += "3";
        }
        

        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text += "4";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            textBox1.Text += "5";
        }

        private void button6_Click(object sender, EventArgs e)
        {
            textBox1.Text += "6";
        }

        private void button11_Click(object sender, EventArgs e)
        {
            textBox1.Text += "7";
        }

        private void button8_Click(object sender, EventArgs e)
        {
            textBox1.Text += "8";
        }

        private void button9_Click(object sender, EventArgs e)
        {
            textBox1.Text += "9";
        }


        private void button20_Click(object sender, EventArgs e)
        {
            if ((textBox1.Text.Contains(',') == false) && (textBox1.Text != ""))
            {
                textBox1.Text += ",";
            }
        }

        private void button19_Click(object sender, EventArgs e)
        {
            m = textBox1.Text;
            if (m != "")
                if (p == false)
                {
                    a = float.Parse(textBox1.Text);
                    textBox1.Clear();
                    count = 1;
                    label1.Text = a.ToString() + "+";
                    z = true;
                    p = true;
                }
                else
                {
                    b = a + float.Parse(textBox1.Text);
                    a = b;
                    label1.Text = b.ToString() + "+";
                    textBox1.Clear();
                }

        }


        private void button18_Click(object sender, EventArgs e)
        {
            m = textBox1.Text;
            if (m != "")
                if (p == false)
                {
                    a = float.Parse(textBox1.Text);
                    textBox1.Clear();
                    count = 6;
                    label1.Text = a.ToString() + "-";
                    z = true;
                    p = true;
                }
                else
                {
                    b = b - float.Parse(textBox1.Text);
                    a = b;
                    label1.Text = b.ToString() + "-";
                    textBox1.Clear();
                }

        }
        

        private void button17_Click(object sender, EventArgs e)
        {
            m = textBox1.Text;
            if (m != "")
                if (p == false)
                {
                    a = float.Parse(textBox1.Text);
                    textBox1.Clear();
                    count = 3;
                    label1.Text = a.ToString() + "*";
                    z = true;
                    p = true;
                }
                else
                {
                    b = a * float.Parse(textBox1.Text);
                    a = 1;
                    label1.Text = b.ToString() + "*";
                    textBox1.Clear();
                }

        }

        private void button16_Click(object sender, EventArgs e)
        {
            m = textBox1.Text;
            if (m != "")
                if (p == false)
                {
                    a = float.Parse(textBox1.Text);
                    textBox1.Clear();
                    count = 4;
                    label1.Text = a.ToString() + "/";
                    z = true;
                    p = true;
                }
                else
                {
                    b = a / float.Parse(textBox1.Text);
                    a = b;
                    label1.Text = b.ToString() + "/";
                    textBox1.Clear();
                }

        }
        

        private void button10_Click(object sender, EventArgs e)
        {
            m = textBox1.Text;
            if (m != "")
            {
                label1.Text = "";
                switch (count)
                {
                    case 1:
                        b = a + float.Parse(textBox1.Text);
                        textBox1.Text = b.ToString();
                        p = false;
                        break;
                    case 2:
                        b = a - float.Parse(textBox1.Text);
                        textBox1.Text = b.ToString();
                        p = false;
                        break;
                    case 3:
                        b = a * float.Parse(textBox1.Text);
                        textBox1.Text = b.ToString();
                        p = false;
                        break;
                    case 4:
                        float c = float.Parse(textBox1.Text);
                        if (c == 0)
                        {
                            textBox1.Text = "Ошибка! На ноль делить нельзя!";
                        }
                        else
                        {
                            b = a / float.Parse(textBox1.Text);
                            textBox1.Text = b.ToString();
                            p = false;
                        }
                        break;
                    default:
                        break;
                }
            }
        }
        

        


        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button14_Click(object sender, EventArgs e)
        {
            int lenght = textBox1.TextLength - 1;
            string text = textBox1.Text;
            textBox1.Clear();
            for (int i = 0; i < lenght; i++)
            {
                textBox1.Text = textBox1.Text + text[i];
            }

        }

    }
}

